﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GMUtilitiesDotNet.ViewModels;
using ThouShaltNotBrickLevelEditor.Code.Managers;
using System.ComponentModel;
using GMUtilitiesDotNet.Helpers;

namespace ThouShaltNotBrickLevelEditor.ViewModels
{
    public sealed class LevelWithToolbarViewModel : ViewModelBase
    {
        #region Constants
        #endregion

        #region Properties
        #region LevelViewModel
        private LevelViewModel mLevelViewModel;
        public static readonly PropertyChangedEventArgs LevelViewModelEventArgs = ObservableHelper.CreateArgs<LevelWithToolbarViewModel>(x => x.LevelViewModel);

        /// <summary>
        /// LevelViewModel property.
        /// </summary>
        public LevelViewModel LevelViewModel
        {
            get { return mLevelViewModel; }
            private set
            {
                if (mLevelViewModel != value)
                {
                    Dispose(mLevelViewModel);
                    mLevelViewModel = value;
                    RaisePropertyChangedEvent(LevelViewModelEventArgs);
                }
            }
        }
        #endregion

        #region ToolbarViewModel
        private ToolbarViewModel mToolbarViewModel;
        public static readonly PropertyChangedEventArgs ToolbarViewModelEventArgs = ObservableHelper.CreateArgs<LevelWithToolbarViewModel>(x => x.ToolbarViewModel);

        /// <summary>
        /// ToolbarViewModel property.
        /// </summary>
        public ToolbarViewModel ToolbarViewModel
        {
            get { return mToolbarViewModel; }
            private set
            {
                if (mToolbarViewModel != value)
                {
                    Dispose(mToolbarViewModel);
                    mToolbarViewModel = value;
                    RaisePropertyChangedEvent(ToolbarViewModelEventArgs);
                }
            }
        }
        #endregion
        #endregion

        #region Events
        #endregion

        #region Commands
        #endregion

        #region Constructors
        public LevelWithToolbarViewModel(LevelEditorManager pLevelEditorManager)
        {
            LevelViewModel = new LevelViewModel(pLevelEditorManager);
            ToolbarViewModel = new ToolbarViewModel(pLevelEditorManager);
        }
        #endregion

        #region Overriden Methods
        #endregion

        #region Methods
        #endregion

        #region Event Handlers
        #endregion

        #region Inner Classes
        #endregion
    }
}